OpenCore引导使用AppleALC修复音频声卡驱动

您所在的位置:网站首页 mac双系统 驱动安装教程 OpenCore引导使用AppleALC修复音频声卡驱动

OpenCore引导使用AppleALC修复音频声卡驱动

#OpenCore引导使用AppleALC修复音频声卡驱动| 来源: 网络整理| 查看: 265

视频教程

点击进入YouTube视频教程

————————————–

点击进入bilibili视频教程

目录:

1.准备 2.查找您的布局ID 3.测试布局 4.使布局ID更永久 5.其他问题

1.准备

首先,我们必须要安装了Lilu和AppleALC,如果不确定是否已正确加载,则可以在终端中运行以下命令(这还将检查是否已加载AppleHDA,因为如果没有AppleALC,则无法正常打补丁):

kextstat | grep -E "AppleHDA|AppleALC|Lilu"

输入后回车出现如下

如果全部三个都出现,那就很好了。注意确保不存在 VoodooHDA 、FakePCllD_ Intel. HDMI_ Audio.kext、只要涉及声卡其他的驱动全部删除,否则将与AppleALC冲突。

2.确定声卡型号/查找您的布局ID

确定声卡型号的几种方式

检查主板规格页面和手册 在Windows中检查DeviceManager 万能的百度也能查 运行cat在Linux上的终端 cat /proc/asound/card0/codec#0 | less

可通过windows系统查看,右键我的电脑——管理——设备管理器——声音、视频和游戏控制器——右键设备属性——详细信息——属性中选择硬件id,查看第一行“值”,注意dev后面的值,0282,那么型号就是ALC282.

使用娱乐大师,导出txt文本的详细电脑配置信息,导出后也会显示你声卡的信息,如下图两个地方都会有

以下内容我将使用ALC1220为例,通过AppleALC.kext声卡驱动支持的硬件型号与ID速查表http://imacos.top/2019/09/07/1920/我们得到以下信息:

0x100003, layout 1, 2, 3, 5, 7, 11, 13, 15, 16, 21, 27, 28, 29, 34

以上的信息说明了两件事:

支持哪个硬件版本(0x100003),仅当列出多个版本且布局不同时才相关 声卡ID(layout 1, 2, 3, 5, 7, 11, 13, 15, 16, 21, 27, 28, 29, 34)支持的各种布局ID

现在有了受支持的布局ID的列表,我们准备一一尝试

注意:如果您的音频编解码器是ALC 3XXX,则可能是错误的,而只是重新命名的控制器,请进行研究,以查看实际的控制器是什么。

ALC3601就是一个例子,但是当我们加载Linux时,会显示真实名称:ALC 671

3.测试声卡ID

为了测试我们的ID,我们将使用boot-arg alcid=xxx,其中xxx是您的ID值。请记住,一次尝试一个布局ID值 。不要添加多个ID或alcid boot-args,如果一个不起作用,请尝试下一个ID值。

NVRAM ├── Add ├── 7C436110-AB2A-4BBB-A880-FE41995C9F82 ├── bootargs | String | alcid=11

4.使布局ID更永久

找到适合您的声卡Layout ID后,我们可以创建一个更永久的解决方案,以更接近真实Mac设置其Layout ID的方式。

使用AppleALC,有一个优先级层次结构,通过该层次结构可以对属性进行优先级排序:

alcid=xxx boot-arg,对调试有用,并覆盖所有其他值 alc-layout-id 在DeviceProperties中,建议用于AppleALC layout-id 在DeviceProperties中,Mac使用相同的属性

正如我们在“AppleALC.kext声卡驱动支持的硬件型号与ID速查表”中看到的那样,它希望通过您设置布局ID,alc-layout-id以便在AppleALC上更轻松,我们将使用DeviceProperties进行设置

首先,我们需要找出音频控制器PCI设备的地址。

方式一:我们将在MacOS终端上使用方便的工具gfxutil:

path/to/gfxutil -f HDEF

如下图HDEF之后的PciRoot(0x0)/Pci(0x1F,0x3)就是声卡的pcie设备地址

方式二:使用Hackintool.app - PCle - Audio device - PciRoot(0x0)/Pci(0x1F,0x3)

然后将此带有子级的PciRoot添加alc-layout-id到DeviceProperties-> Add下的config.plist中:

DeviceProperties ├── Add ├── PciRoot(0x0)/Pci(0x1F,0x3) ├── alc-layout-id | Data | 0b000000

请注意,0b000000值属于十六进制,来源于之前声卡列表ID 11,11为十进制,把11转换为十六进制即为0b000000,你可以是用Hackintool.app的计算器来转换

因此,在这个例子中,alcid=11将成为alc-layout-id | Data |

请注意,最终值应总共为4个字节(即0B 00 00 00),因为声卡ID超过255(FF 00 00 00)将需要记住这些字节已转换。所以256将变成FF 01 00 00

5.其他问题

部分笔记本电脑需要打如下的DSDT补丁才能驱动:

# Maintained by: RehabMan for: Laptop Patches # system_IRQ.txt # This can fix non-working audio and also has an affect on HPET. # Use this if you have issues with patched AppleHDA (required on almost all laptops) # or if you have issues with HPET (restart after wake). # IRQ fix into device name_hid PNP0000 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} remove_matched; into device name_hid PNP0100 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} remove_matched; into device name_hid PNP0B00 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} remove_matched; into device name_hid PNP0103 code_regex IRQNoFlags\s\(\)\n\s+\{.*\} removeall_matched; into device name_hid PNP0103 code_regex Name\s\(([^,]+),\sResourceTemplate\s\(\).*\n\s+\{((?:.|\n)*)\}\) replace_matched begin Name (%1, ResourceTemplate()\n {\n IRQNoFlags() { 0, 8, 11, 15 }\n %2 })\n end;

关于DSDT的提取与补丁的注入方式可以参考此文

http://imacos.top/2019/08/09/0958/

AMD上没有麦克风:

当在AMD上运行AppleALC时,这是一个常见问题,特别是尚未制作任何补丁来支持Mic输入。目前,“最佳”解决方案是购买USB DAC / Mic或采用VoodooHDA.kext方法。VoodooHDA的问题在于,它比AppleALC不稳定且音频质量较差

来自Clover的相同布局ID在OpenCore上不起作用

这很可能是IRQ冲突的原因,在Clover上有大量自动应用的ACPI热补丁。解决这个问题有点麻烦,但是SSDTTime的FixHPET选项可以处理大多数情况。

对于RTC和HPET从其他设备(如USB和音频)获取IRQ的奇怪情况,您可以在trashOS存储库中引用HP Compaq DC7900 ACPI补丁示例

原文链接:https://imacos.top/2020/04/23/1004-3/,转载请注明出处。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3